As duas ferramentas são produzidas pela Microsoft e tem a finalidade de desenvolver aplicações para todas as plataformas e o melhor de tudo isso é que são gratuitas.
Sendo uma única plataforma de desenvolvimento para todas as linguagens isto tornou elas um pouco 'complexa' e algumas vezes redundante. Contudo, são muito úteis, completas, amigáveis, cheias de recursos.
Para você que é novato qual seria a diferença entre criar uma página em HTML com um Notepad++ ou mesmo um Sublime Text ou um kompozer ? É simples, pelos recursos que eles tem embutidos. Por exemplo, o visual studio Community Edition tem o intellisense e a codificação javascript embutida o que permite que voce, ao digitar a primeira ou segunda letra de uma propriedade de um item em javascript, ele sugere sua complementação, ou seja, informa que o que você está digitando esta correto e falta um complemento que ele sugere. Para escolher entre uma sugestão ou outra use as setas para cima ou para baixo do teclado e para selecionar o item clique na tecla <TAB>. Com isto você não precisa ser um genio e saber todas as tags html, css, javascript de cabeça... tem uma ajudinha do editor que ajuda nisso. E não se esqueça que HTML, por exemplo, é um padrão em constante evolução, ou seja, quando você aprender bem provavelmente já haverá um outro novo que muda tudo que antes era tido como certo.
Se você é fã do Visual Studio Code nada contra. É uma excelente ferramenta, gratuita e bem mais leve que o Visual Studio Community Edition contudo a interface com o usuário foi simplificada e o jeito de configurar seus recursos ficou para um 'segundo plano' o que deixa qualquer um com muitas dificuldades em sua utilização e sempre precisamos recorrer a ajuda da Internet para configurar alguns itens menos utilizados.
Já o Visual Studio Community Edition tem uma interface rica e amigável muito mais intuitiva que o visual Studio Code de maneira que um novato consiga operar ele de uma maneira mais amigável o que torna sua utilização mais simples. Contudo isto fez com que ele ficasse bem mais pesado que o Visual Studio Code.
Se você utiliza o Visual Studio Community Edition como ferramenta de edição sugiro as seguintes dicas :
É um detalhe fundamental que pode fazer você perder boas horas de pesquisa.
Todas suas páginas html, aspx, css são publicados na integra, como num site comum sem o asp net.
Já o code behind das páginas asp net (Visual Basic, C# ou seja que linguagem for ) é compilado em uma única
dll e colocada na pasta bin do seu projeto. A .dll é como um .exe de uma app windows comum, só que roda
num servidor web. E só podemos depositar este arquivo via um processo especial como o ftp ou uma ferramenta
parecida ( que precisa de usuário e senha ). É proibido fazer isso em qualquer outra situação.
Sendo assim se eu tenho o projetox dentro dele eu tenho toda a estrutura de diretórios montada como nós
planejamos, separadas por utilidade e os fontes html, css, javascript, aspx dentro delas.
Na pasta root do site ( do seu projeto ) teremos os arquivos de configuração como o Site.Master, os web.configs
( dependendo da sua segurança estes poderão estar também dentro das pastas do site )
Outra coisa importante é que os arquivos de configuração do site como o Site.Master, web.config ( se a segurança for diferenciada de um site para outro ) devem ser nomeados diferentemente para cada projeto para diferenciar o de um site para o do outro site. Sendo assim temos o Site.Master do site root, o SiteProjetoA.Master do projeto A, o SiteProjetoB.Master do projeto B e assim por diante.
Importante: Os provedores de Internet com segurança média ou alta não permitem que seu aplicativo asp
net ( sua dll ) acesse componentes fora da sua pasta. Ou seja, se você usa algum componente externo, como por exemplo,
o Mysql.Data. Para ter acesso ao banco de dados MySQL você precisa do MySQL.Data e você deverá copiar este
componente para dentro da pasta bin do seu projeto e, dentro do seu projeto, na hora de sua construção,
referenciar este componente dentro da pasta bin porque ele não terá permissão de acessar nada fora da sua
pasta nativa.
Recomendo seguir a receita de bolo do seu provedor para fazer o primeiro acesso. Muitos deles só aceitam algumas
versões desses componentes e mesmo assim com restrições de acesso e uso.
Vamos supor que num projeto você tenha o bootstrap, o jquery e um ou outro recurso que você raramente mude,
como as imagens do site, do tipo, subiu uma vez não preciso publicar mais.
Neste caso sugiro que você vá no 'Gerenciador de Soluções' do Visual Studio, clique com o botão direito do
mouse no item que deseja que não seja mais publicado e selecione o item 'Excluir do Projeto'.
Note que 'Excluir do Projeto' e não 'Excluir' porque o 'Excluir' apenas apaga o arquivo e não é isso
que queremos.
Sendo assim da próxima vez que você publicar seu projeto ele não será enviado ao servidor e com isso você ganha
temo reduzindo o tempo que demora para subir as coisas.
Note que você não pode excluir do seu projeto pastas ou arquivos necessários ao seu funcionamento. Se você tem
uma pasta chamado usuario que tem todas as páginas de tratamento de acesso do usuário, lógicamente não poderá
removê-la porque, na compilação, as páginas que fazem referencias as funcionalidades de acesso do usuário irão
dar erro.
Se você gerencia um site acredito que poderá ter a necessidade de publicar mais de um site dentro do seu domínio.
Por exemplo, no meu eu tenho sites públicos publicados pelo root do site e tenho sites privados, operacionais de algumas empresas.
Todos eles são feitos com a tecnologia asp net mas como conseguem convier harmonicamente dentro de um único
servidor/site/domínio?
A primeira diferenciação é feita pela url. Assim ao digitar www.ideapedia.com.br você acessa um site.
Ao digitar www.ideapedia.com.br/site2/ você acessa o segundo site e assim por diante. Posso ter quantos sites
eu desejar dentro do meu domínio mas há um segredo em sua convivência dentro do mesmo servidor.
O segredo é o seguinte : Como todas as urls referenciam ao site root a pasta bin que o site utiliza é sempre a pasta bin do root do site e não a pasta bin do seu projeto. Assim sendo, quando eu subo um projeto dentro de um site que não é o principal eu sou obrigado a abrir a pasta do projeto num servidor ftp e copiar a .dll, dll.config, .xml, .pdb da pasta bin do projeto publicado para a pasta bin do root do site.